testtooltips: Add static tooltip
authorTimm Bäder <mail@baedert.org>
Wed, 24 May 2017 08:24:13 +0000 (10:24 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:13 +0000 (21:27 -0400)
Just a widget class emulating the tooltip look by calling itself
"tooltip" in the css node tree and adding the .background style class.

tests/testtooltips.c

index 3d64b9262a7be57953bab15157adc8033939fadd..50345535fca38a4c174d5c4634e330d7951b3908 100644 (file)
 
 #include <gtk/gtk.h>
 
+typedef struct _MyTooltip MyTooltip;
+typedef struct _MyTooltipClass MyTooltipClass;
+
+
+struct _MyTooltip
+{
+  GtkBin parent_instance;
+};
+
+struct _MyTooltipClass
+{
+  GtkBinClass parent_class;
+};
+
+G_DEFINE_TYPE (MyTooltip, my_tooltip, GTK_TYPE_BIN)
+
+static void
+my_tooltip_init (MyTooltip *tt)
+{
+  GtkWidget *label = gtk_label_new ("Some text in a tooltip");
+
+  gtk_container_add (GTK_CONTAINER (tt), label);
+
+  gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (tt)), "background");
+}
+
+static void
+my_tooltip_class_init (MyTooltipClass *tt_class)
+{
+  gtk_widget_class_set_css_name (GTK_WIDGET_CLASS (tt_class), "tooltip");
+}
+
 static gboolean
 query_tooltip_cb (GtkWidget  *widget,
                  gint        x,
@@ -248,6 +280,7 @@ main (int argc, char *argv[])
   GtkWidget *drawing_area;
   GtkWidget *button;
   GtkWidget *label;
+  GtkWidget *tooltip;
 
   GtkWidget *tooltip_window;
   GtkWidget *tooltip_button;
@@ -272,6 +305,13 @@ main (int argc, char *argv[])
   box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3);
   gtk_container_add (GTK_CONTAINER (window), box);
 
+  tooltip = g_object_new (my_tooltip_get_type (), NULL);
+  gtk_widget_set_margin_top (tooltip, 20);
+  gtk_widget_set_margin_bottom (tooltip, 20);
+  gtk_widget_set_halign (tooltip, GTK_ALIGN_CENTER);
+  gtk_container_add (GTK_CONTAINER (box), tooltip);
+
+
   /* A check button using the tooltip-markup property */
   button = gtk_check_button_new_with_label ("This one uses the tooltip-markup property");
   gtk_widget_set_tooltip_text (button, "Hello, I am a static tooltip.");